package net.myjung.model.editor;

import net.myjung.model.BaseObject;
import net.myjung.model.MdlClass;
import net.myjung.model.annotation.MdlAttribute;
import net.myjung.model.annotation.MdlElement;
import net.myjung.util.ListMap;

@SuppressWarnings("serial")
public class ClassInfo extends BaseObject {
	@MdlAttribute
	private String pkg;
	@MdlAttribute
	private String name;
	@MdlAttribute
	private String extendz;
	@MdlElement
	private MdlClass clazz;
	private ListMap<String,FieldInfo> fieldInfoMap = new ListMap<String,FieldInfo>();
	
	@MdlElement
	private FieldInfo parent;
	@MdlElement
	private FieldInfo id;
	@MdlElement
	private FieldInfo title;
	@MdlElement
	private FieldInfo creator;
	@MdlElement
	private FieldInfo created;
	@MdlElement
	private FieldInfo modifier;
	@MdlElement
	private FieldInfo modified;
	@MdlAttribute
	private boolean populated = false;
	
	public String getPkg() {
		return pkg;
	}
	public void setPkg(String pkg) {
		this.pkg = pkg;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getExtendz() {
		return extendz;
	}
	public void setExtendz(String extendz) {
		this.extendz = extendz;
	}
	public MdlClass getClazz() {
		return clazz;
	}
	public void setClazz(MdlClass clazz) {
		this.clazz = clazz;
	}
	public ListMap<String,FieldInfo> getFieldInfoMap() {
		return fieldInfoMap;
	}
	public void setFieldInfoMap(ListMap<String,FieldInfo> fieldInfos) {
		this.fieldInfoMap = fieldInfos;
	}
	public FieldInfo getFieldInfo(String key) {
		return fieldInfoMap.get(key);
	}
	public void setFieldInfo(String key, FieldInfo fieldInfo) {
		fieldInfoMap.put(key, fieldInfo);
	}
	public FieldInfo getParent() {
		return parent;
	}
	public void setParent(FieldInfo parent) {
		this.parent = parent;
	}
	public FieldInfo getId() {
		return id;
	}
	public void setId(FieldInfo id) {
		this.id = id;
	}
	public FieldInfo getTitle() {
		return title;
	}
	public void setTitle(FieldInfo title) {
		this.title = title;
	}
	public FieldInfo getCreator() {
		return creator;
	}
	public void setCreator(FieldInfo creator) {
		this.creator = creator;
	}
	public FieldInfo getCreated() {
		return created;
	}
	public void setCreated(FieldInfo created) {
		this.created = created;
	}
	public FieldInfo getModifier() {
		return modifier;
	}
	public void setModifier(FieldInfo modifier) {
		this.modifier = modifier;
	}
	public FieldInfo getModified() {
		return modified;
	}
	public void setModified(FieldInfo modified) {
		this.modified = modified;
	}
	public boolean isPopulated() {
		return populated;
	}
	public void setPopulated(boolean populated) {
		this.populated = populated;
	}
}
